#line 1 "/Users/czera/Documents/Study/ios逆向/ReverseiOS/Demo9_Logs语法/MonkeyDevLogosDemo/MonkeyDevLogosDemoDylib/Logos/MonkeyDevLogosDemoDylib.xm"


#import <UIKit/UIKit.h>

@interface ViewController : UIViewController
    
+(void)CZ_classMethod;
    
@end


#include <substrate.h>
#if defined(__clang__)
#if __has_feature(objc_arc)
#define _LOGOS_SELF_TYPE_NORMAL __unsafe_unretained
#define _LOGOS_SELF_TYPE_INIT __attribute__((ns_consumed))
#define _LOGOS_SELF_CONST const
#define _LOGOS_RETURN_RETAINED __attribute__((ns_returns_retained))
#else
#define _LOGOS_SELF_TYPE_NORMAL
#define _LOGOS_SELF_TYPE_INIT
#define _LOGOS_SELF_CONST
#define _LOGOS_RETURN_RETAINED
#endif
#else
#define _LOGOS_SELF_TYPE_NORMAL
#define _LOGOS_SELF_TYPE_INIT
#define _LOGOS_SELF_CONST
#define _LOGOS_RETURN_RETAINED
#endif

@class ViewController; 

static __inline__ __attribute__((always_inline)) __attribute__((unused)) Class _logos_static_class_lookup$ViewController(void) { static Class _klass; if(!_klass) { _klass = objc_getClass("ViewController"); } return _klass; }
#line 11 "/Users/czera/Documents/Study/ios逆向/ReverseiOS/Demo9_Logs语法/MonkeyDevLogosDemo/MonkeyDevLogosDemoDylib/Logos/MonkeyDevLogosDemoDylib.xm"
static void (*_logos_orig$group1$ViewController$loginBtnAction$)(_LOGOS_SELF_TYPE_NORMAL ViewController* _LOGOS_SELF_CONST, SEL, id); static void _logos_method$group1$ViewController$loginBtnAction$(_LOGOS_SELF_TYPE_NORMAL ViewController* _LOGOS_SELF_CONST, SEL, id); static void _logos_method$group1$ViewController$touchesBegan$withEvent$(_LOGOS_SELF_TYPE_NORMAL ViewController* _LOGOS_SELF_CONST, SEL, NSSet<UITouch *> *, UIEvent *); static void _logos_meta_method$group1$ViewController$CZ_classMethod(_LOGOS_SELF_TYPE_NORMAL Class _LOGOS_SELF_CONST, SEL); 

static void _logos_method$group1$ViewController$loginBtnAction$(_LOGOS_SELF_TYPE_NORMAL ViewController* _LOGOS_SELF_CONST __unused self, SEL __unused _cmd, id sender){
    HBLogDebug(@"-[<ViewController: %p> loginBtnAction:%@]", self, sender);
    _logos_orig$group1$ViewController$loginBtnAction$(self, _cmd, sender);
    NSLog(@"成功！！！第一组");
}



static void _logos_method$group1$ViewController$touchesBegan$withEvent$(_LOGOS_SELF_TYPE_NORMAL ViewController* _LOGOS_SELF_CONST __unused self, SEL __unused _cmd, NSSet<UITouch *> * touches, UIEvent * event){
    NSLog(@"点击了屏幕");
    
    [_logos_static_class_lookup$ViewController() CZ_classMethod];

}


static void _logos_meta_method$group1$ViewController$CZ_classMethod(_LOGOS_SELF_TYPE_NORMAL Class _LOGOS_SELF_CONST __unused self, SEL __unused _cmd){
    NSLog(@"这是一个类方法");
}






static void (*_logos_orig$group2$ViewController$loginBtnAction$)(_LOGOS_SELF_TYPE_NORMAL ViewController* _LOGOS_SELF_CONST, SEL, id); static void _logos_method$group2$ViewController$loginBtnAction$(_LOGOS_SELF_TYPE_NORMAL ViewController* _LOGOS_SELF_CONST, SEL, id); 

static void _logos_method$group2$ViewController$loginBtnAction$(_LOGOS_SELF_TYPE_NORMAL ViewController* _LOGOS_SELF_CONST __unused self, SEL __unused _cmd, id sender){
    NSLog(@"成功！！！第二组");
}





static __attribute__((constructor)) void _logosLocalCtor_65c747d9(int __unused argc, char __unused **argv, char __unused **envp){
    
    NSString *v = [UIDevice currentDevice].systemVersion;
    
    if(v.doubleValue > 11.0){


        {Class _logos_class$group1$ViewController = objc_getClass("ViewController"); Class _logos_metaclass$group1$ViewController = object_getClass(_logos_class$group1$ViewController); MSHookMessageEx(_logos_class$group1$ViewController, @selector(loginBtnAction:), (IMP)&_logos_method$group1$ViewController$loginBtnAction$, (IMP*)&_logos_orig$group1$ViewController$loginBtnAction$);{ char _typeEncoding[1024]; unsigned int i = 0; _typeEncoding[i] = 'v'; i += 1; _typeEncoding[i] = '@'; i += 1; _typeEncoding[i] = ':'; i += 1; memcpy(_typeEncoding + i, @encode(NSSet<UITouch *> *), strlen(@encode(NSSet<UITouch *> *))); i += strlen(@encode(NSSet<UITouch *> *)); memcpy(_typeEncoding + i, @encode(UIEvent *), strlen(@encode(UIEvent *))); i += strlen(@encode(UIEvent *)); _typeEncoding[i] = '\0'; class_addMethod(_logos_class$group1$ViewController, @selector(touchesBegan:withEvent:), (IMP)&_logos_method$group1$ViewController$touchesBegan$withEvent$, _typeEncoding); }{ char _typeEncoding[1024]; unsigned int i = 0; _typeEncoding[i] = 'v'; i += 1; _typeEncoding[i] = '@'; i += 1; _typeEncoding[i] = ':'; i += 1; _typeEncoding[i] = '\0'; class_addMethod(_logos_metaclass$group1$ViewController, @selector(CZ_classMethod), (IMP)&_logos_meta_method$group1$ViewController$CZ_classMethod, _typeEncoding); }} } else{

        {Class _logos_class$group2$ViewController = objc_getClass("ViewController"); MSHookMessageEx(_logos_class$group2$ViewController, @selector(loginBtnAction:), (IMP)&_logos_method$group2$ViewController$loginBtnAction$, (IMP*)&_logos_orig$group2$ViewController$loginBtnAction$);} } }    
